package strings

import (
	"crypto/rand"
	"fmt"
	"strings"
)

// IsBlank 检查字符串是否为空白（包括空格、制表符等）- 项目实际使用
func IsBlank(s string) bool {
	return len(strings.TrimSpace(s)) == 0
}

// IsNotBlank 检查字符串是否不为空白 - 项目实际使用
func IsNotBlank(s string) bool {
	return !IsBlank(s)
}

// RandomString 生成指定长度的随机字符串 - 项目实际使用
func RandomString(length int) (string, error) {
	const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
	b := make([]byte, length)
	_, err := rand.Read(b)
	if err != nil {
		return "", err
	}
	for i := range b {
		b[i] = charset[b[i]%byte(len(charset))]
	}
	return string(b), nil
}

// ToString 将任意类型转换为字符串 - 项目实际使用
func ToString(value interface{}) string {
	if value == nil {
		return ""
	}
	return fmt.Sprintf("%v", value)
}